package com.js.data.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.js.data.system.entity.SysUserDept;

import java.util.List;


/**
 * <p>
 * 用户部门关联 服务类
 * </p>
 *
 * @author wujj
 * @since 2022-09-06
 */
public interface UserDeptService extends IService<SysUserDept> {


    /**
     * 用户部门
     *
     * @param deptIds 用户部门
     * @param userId  用户uid
     */
    void saveBatchToDB(List<Long> deptIds, Long userId);

    /**
     * 根据用户uid 删除
     *
     * @param userId 用户uid
     */
    void removeByUserId(Long userId);

    /**
     * 批量删除用户
     *
     * @param userIds 用户ids
     */
    void removeByUserIds(List<Long> userIds);

    /**
     * 获取用户 指定的部门Id
     *
     * @param userId 用户uid
     * @return List<Integer>
     */
    List<Long> getAssignDeptIds(Long userId);

    /**
     * 根据部门id获取用户id
     *
     * @param deptIds 部门id
     * @return 用户id
     */
    List<Long> getUserIdByDeptIds(List<Long> deptIds);

    /**
     * 获取用户的部门数据权限
     *
     * @param userId         用户uid
     * @param userSelfDeptId 用户自己部门id
     * @param permType       用户数据权限  0-全部 1-本人 2-本部门 3-本部门及下级部门 4-指定
     */
    void getUserPermDeptIds(Long userId, Long userSelfDeptId, String permType, List<Long> dataScopeIds);
}
